﻿//#define _CRT_SECURE_NO_WARNINGS 1
//#include"SList.h"
//
//void STLNodeTest1()
//{
//	SLTNode* phead = NULL;
//	SListPushFront(&phead, 1);
//	SListPushFront(&phead, 2);
//	SListPushFront(&phead, 3);
//
//	SListPrint(phead);
//
//
//}
//void STLNodeTest2()
//{
//	SLTNode* phead = NULL;
//	SListPushFront(&phead, 1);
//	SListPushFront(&phead, 2);
//	SListPushFront(&phead, 3);
//	SListPushFront(&phead, 4);
//	SListPrint(phead);
//	SLTNode* res = reverseList(phead);
//	 SListPrint(res);
//	//SlistDestroy(&phead);
//	//SListPrint(phead);
//
//}
//
//
//void STLNodeTest3()
//{
//	SLTNode* phead = NULL;
//	SListPushBack(&phead, 5);
//	SListPushBack(&phead, 6);
//	SListPushBack(&phead, 7);
//	SListPrint(phead);
//
//	SListPopBack(&phead);
//	SListPrint(phead);
//
//	SListPopBack(&phead);
//	SListPrint(phead);
//
//	SListPopBack(&phead);
//	SListPrint(phead);
//
//
//	//SListPopBack(&phead);
//	//SListPrint(phead);
//}
//
//
//
//void STLNodeTest4()
//{
//	SLTNode* phead = NULL;
//	SListPushBack(&phead, 5);
//	SListPushBack(&phead, 6);
//	SListPushBack(&phead, 7);
//	SListPushBack(&phead, 8);
//	SListPushBack(&phead, 9);
//	SListPrint(phead);
//	SLTNode* pos = SListFind(&phead, 7);
//	//if (pos)
//	//{
//	//	//可以充当修改的用作
//	//	pos->data = pos->data*10;
//	//	printf("找到了\n");
//	//}
//	//else
//	//{
//	//	printf("没找到\n");
//	//}
//	//SListPrint(phead);
//
//	//SListErase(&phead, pos);
//	//SListPrint(phead);
//
//	SListEraseBack(&phead, pos);
//	//注意把pos在外面置空
//	SListPrint(phead);
//
//}
//
//
//
//void STLNodeTest6()
//{
//	SLTNode* phead = NULL;
//	SListPushFront(&phead, 1);
//	SListPushFront(&phead, 2);
//	SListPushFront(&phead, 3);
//	SListPushFront(&phead, 4);
//	SListPushFront(&phead, 5);
//	SListPushFront(&phead, 6);
//	SListPushFront(&phead, 7);
//	SListPrint(phead);
//	SLTNode* res = middleNode(phead);
//	SListPrint(res);
//	//SlistDestroy(&phead);
//	//SListPrint(phead);
//
//}
//
//void STLNodeTest7()
//{
//	SLTNode* phead = NULL;
//	SListPushFront(&phead, 1);
//	SListPushFront(&phead, 2);
//	SListPushFront(&phead, 3);
//	SListPushFront(&phead, 4);
//	SListPushFront(&phead, 5);
//	SListPushFront(&phead, 6);
//	SListPushFront(&phead, 7);
//	SListPrint(phead);
//	SLTNode* res = FindKthToTail(phead,7);
//	SListPrint(res);
//	//SlistDestroy(&phead);
//	//SListPrint(phead);
//
//}
//
//void STLNodeTest8()
//{
//	SLTNode* phead = NULL;
//	SLTNode* phead2 = NULL;
//	SListPushBack(&phead, 1);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 4);
//	SListPushBack(&phead, 5);
//	SListPushBack(&phead, 6);
//	SListPushBack(&phead, 7);
//	SListPrint(phead);
//
//	SListPushBack(&phead2, 1);
//	SListPushBack(&phead2, 3);
//	SListPushBack(&phead2, 5);
//	SListPushBack(&phead2, 7);
//	SListPrint(phead2);
//	SLTNode* res = mergeTwoLists(phead, phead2);
//	SListPrint(res);
//	//SlistDestroy(&phead);
//	//SListPrint(phead);
//
//}
//
//void STLNodeTest9()
//{
//	SLTNode* phead = NULL;
//	SLTNode* phead2 = NULL;
//	SListPushBack(&phead, 1);
//	SListPushBack(&phead, 8);
//	SListPushBack(&phead, 7);
//	SListPushBack(&phead, 5);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 3);
//	SListPrint(phead);
//
//	SLTNode* res = partition(phead, 5);
//	SListPrint(res);
//	//SlistDestroy(&phead);
//	//SListPrint(phead);
//
//}
//void STLNodeTest10()
//{
//	SLTNode* phead = NULL;
//	SLTNode* phead2 = NULL;
//	SListPushBack(&phead, 1);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 4);
//	SListPushBack(&phead, 5);
//	SListPushBack(&phead, 5);
//	SListPrint(phead);
//
//	SLTNode* res = deleteDuplication(phead);
//
//	//SlistDestroy(&phead);
//	SListPrint(res);
//}
//
//void STLNodeTest11()
//{
//	SLTNode* phead = NULL;
//	SLTNode* phead2 = NULL;
//	SListPushBack(&phead, 1);
//	SListPushBack(&phead, 1);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 2);
//	SListPushBack(&phead, 3);
//	SListPushBack(&phead, 3);
//	SListPrint(phead);
//	SLTNode* res = deleteDuplication(phead);
//	
//	//SlistDestroy(&phead);
//     SListPrint(res);
//}
//
//int main()
//{
//	//STLNodeTest1();
//	//STLNodeTest6();
//	STLNodeTest11();
//
//	return 0;
//}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
////void Swapi(int* x, int* y)
////{
////	int z = *x;
////	*x = *y;
////	*y = z;
////}
////void Swapi1(int* x, int* y)
////{
////	int z = *x;
////	*x = *y;
////	*y = z;
////}
////
////void Swapi2(int** x, int** y)
////{
////	int *z = *x;
////	*x = *y;
////	*y = z;
////}
//
//
////int main()
////{
////	//---------------------------------test-----------------------
////	//int x = 0;
////	//int y = 1;
////	//Swapi(&x,&y);
////	//int* px = &x;
////	//int* py = &y;
////	//Swapi1(px, py);
////	//Swapi2(&px, &py);
////	//----------------------------------------------------------=
////	STLNodeTest1();
////	return 0;
////}


///////////////////////////////带头的循环双向链表/////////////////////////////////////////////////////
#include"dlist.h"
void Test1()
{
	ListNode* phead = InitList();
	SListPushFront(phead, 1);
	SListPushFront(phead, 2);
	SListPushFront(phead, 3);
	SListPushFront(phead, 4);

	SListPrint(phead);

	SListPushBack(phead, 10);
	SListPushBack(phead, 20);
	SListPushBack(phead, 30);
	SListPushBack(phead, 40);

	SListPrint(phead);

	SListPopBack(phead);
	SListPopBack(phead);
	SListPrint(phead);

	SListPopFront(phead);
	SListPopFront(phead);
	SListPrint(phead);

}
void Test2()
{
	ListNode* phead = InitList();
	SListPushFront(phead, 1);
	SListPushFront(phead, 2);
	SListPushFront(phead, 3);
	SListPushFront(phead, 4);
	SListPrint(phead);
	
	ListNode* cur = ListFind(phead,1);
	ListInsert(cur, 100);
	SListPrint(phead);

}
int main()
{
	Test2();
	return 0;
}